home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AdobeExamples / NX_ImportAdv / Document.h < prev    next >
Text File  |  1992-12-19  |  4KB  |  131 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34.  *     Document.h
  35.  *
  36.  *    The Document class serves to keep track of the global information
  37.  *    concerning a particular file. It sets up the window and the views
  38.  *    (ScrollView, DocView and DrawingView) . It manages the name
  39.  *    of the file as well as save and print info information.
  40.  *
  41.  *    Version:    2.0
  42.  *    Author:    Ken Fromm
  43.  *    History:
  44.  *            03-17-91        Added this comment and fixed the Save To section.
  45.  */
  46.  
  47. #import <appkit/Responder.h>
  48. #import <appkit/graphics.h>
  49.  
  50. #define MIN_WINDOW_WIDTH 50.0
  51. #define MIN_WINDOW_HEIGHT 75.0
  52. #define SCROLLVIEW_BORDER NX_NOBORDER
  53.  
  54. #define  NOPREFIX    0
  55. #define  LOADPREFIX    1
  56. #define  SAVEPREFIX    2
  57.  
  58. @interface  Document : Responder
  59. {
  60.     id        listenerId,        /* the icon-dragging listener */
  61.             printinfoId,        /* the print info object */
  62.  
  63.             drawingviewId,    /* the drawing view */
  64.             docviewId,        /* contains the drawing view, allows zooming*/
  65.             windowId;        /* the window the views above are in */
  66.  
  67.     char     *name;            /* the name of the document */
  68.     char     *directory;        /* the directory it is in */
  69.     char     *iconPathList;        /* list of files last dragged over document */
  70.  
  71.     BOOL    saved;            /* whether document has associated disk file */
  72. }
  73.  
  74. /* Factory methods */
  75. + new;
  76. + newFromFile:(const char *)file;
  77.  
  78. - readFromStream:(NXStream *)stream;
  79. - setDocument;
  80.  
  81. - free;
  82.  
  83. - createWindow;
  84.  
  85. - window;
  86. - drawingView;
  87. - docView;
  88. - printInfo;
  89.  
  90. /* Target/Action methods */
  91. - changeLayout:sender;
  92. - print:sender;
  93. - revertToSaved:sender;
  94. - import:sender;
  95.  
  96. - saveFile:(const char *) file;
  97. - save:sender;
  98. - saveAs:sender;
  99. - saveTo:sender;
  100.  
  101. /* Document name and file handling methods */
  102. - (const char *)filename;
  103. - (const char *)directory;
  104. - (const char *)name;
  105. - setName:(const char *)name;
  106. - setName:(const char *)name andDirectory:(const char *)directory;
  107.  
  108. /* Window delegate methods */
  109. - windowDidBecomeMain:sender;
  110. - windowWillResize:sender toSize:(NXSize *)size;
  111. - windowDidResize:sender;
  112. - windowWillClose:sender;
  113.  
  114. /* Workspace Manager icon-dragging methods */
  115. - registerWindow;
  116. - unregisterWindow;
  117. - (int)iconEntered:(int)windowNum at:(double)x :(double)y
  118.     iconWindow:(int)iconWindowNum iconX:(double)iconX iconY:(double)iconY
  119.     iconWidth:(double)iconWidth iconHeight:(double)iconHeight
  120.     pathList:(char *)pathList;
  121. - (int)iconReleasedAt:(double)x :(double)y ok:(int *)flag;
  122.  
  123. /* Menu command validation method */
  124. - (BOOL)validateCommand:menuCell;
  125.  
  126. /* Responder setting */
  127. - resetResponder;
  128.  
  129. @end
  130.  
  131.